package org.water.sys.repository;

import java.util.List;
import java.util.Optional;

import org.springframework.data.jpa.repository.Query;
import org.water.base.repository.BaseRepository;
import org.water.sys.entity.SysDictValue;
/**
 * 字典值
 * @author qzy
 *
 */
public interface DictValueDao extends BaseRepository<SysDictValue, String> {

	/**
	 * 根据id查询
	 * @param id
	 * @return
	 */
	public Optional<SysDictValue> findById(String id);
	/**
	 * 根据字典类型查询字典值列表
	 * @param typeId
	 * @return
	 */
	public List<SysDictValue> findByDictTypeId(String typeId);
	/**
	 * 根据字典类型编码查询字典值列表
	 * @param typeCode
	 * @return
	 */
	@Query(value="select * from sys_dict_value dv where dv.dict_type_id in (select dt.id from sys_dict_type dt where dt.code=?1 ) ",nativeQuery=true)
	public List<SysDictValue> findByTypeCode(String typeCode);
	
	/**
	 * 根据字典类型、值编码查询字典值
	 * @param typeCode
	 * @return
	 */
	@Query(value="select * from sys_dict_value dv where dv.dict_type_id in (select dt.id from sys_dict_type dt where dt.code=?1 )  and dv.code= ?2 ",nativeQuery=true)
	public SysDictValue findByTypeCodeAndValueCode(String typeCode,String valueCode);
}
